package marina;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class J18SimpleDateFormat {
	public static void main(String[] args){
		//DateFormat
		//Date 클래스나 Calendar클래스로 날짜와 시간을 출력하는 것은 많은 비용이 필요.
		//적은 비용으로 간편하게 날짜/시간을 출력하려면 DateFormat을 사용하자!
		//단, 자주 사용하는 출력형태를 4가지로 분류
		Date now = new Date();
		DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
		System.out.println(df.format(now));
		
		df = DateFormat.getDateInstance(DateFormat.LONG);
		System.out.println(df.format(now));
		df = DateFormat.getDateInstance(DateFormat.SHORT);
		System.out.println(df.format(now));
		df = DateFormat.getDateInstance(DateFormat.MEDIUM);
		System.out.println(df.format(now));

		df = DateFormat.getTimeInstance(DateFormat.FULL);
		System.out.println(df.format(now));
		
		df = DateFormat.getTimeInstance(DateFormat.LONG);
		System.out.println(df.format(now));
		df = DateFormat.getTimeInstance(DateFormat.SHORT);
		System.out.println(df.format(now));
		df = DateFormat.getTimeInstance(DateFormat.MEDIUM);
		System.out.println(df.format(now));
		
		//SimpleDateFormat => 강츄 (but, 어느 날짜 중심으로 얼마나 지났거나 남았는지는 이걸로 못한당...)
		//DateFormat이 지원하는 출력 형태 말고 다양하게 날짜와 시간을 출력하기 위해 사용
		//y : 연도를 표시하는 패턴(yy,yyyy)
		//M : 현재 월을 표시하는 패턴(MM)
		//d : 현재 일을 표시하는 패턴(dd)
		//E : 현재 요일을 표시하는 패턴(E)
		//D : 현재 연도를 기준으로 총 일수를 표시(DDD)
		
		//h : 현재 시간을 출력 (h, hh)
		//m : 현재 시간의 분을 출력 (m, mm)
		//s : 현재 시간의 초를 출력 (s, ss)
		//a : 현재 시간의 오전/오후 여부 출력 (a)
 		String fmt = "yyyy년 MM월 dd일 E요일 a hh:mm:ss";
		SimpleDateFormat sdf = new SimpleDateFormat(fmt);
		System.out.println(sdf.format(now));
 		
		
	}
}
